home *** CD-ROM | disk | FTP | other *** search
- /*
- * Copyright (c) 1982, 1986 Regents of the University of California.
- * All rights reserved. The Berkeley software License Agreement
- * specifies the terms and conditions for redistribution.
- *
- * @(#)signal.h 7.3 (Berkeley) 5/14/88
- * $Header: /sprite/src/lib/include/RCS/signal.h,v 1.14 91/10/24 17:49:43 rab Exp $
- */
-
- #ifndef _SIGNAL
- #define _SIGNAL
-
- #include <cfuncproto.h>
- #include <machSignal.h>
-
- #ifndef NSIG
- #define NSIG 32
- #endif
-
- #define SIGHUP 1 /* hangup */
- #define SIGINT 2 /* interrupt */
- #define SIGQUIT 3 /* quit */
- #define SIGILL 4 /* illegal instruction (not reset when caught) */
- #define SIGTRAP 5 /* trace trap (not reset when caught) */
- #define SIGIOT 6 /* IOT instruction */
- #define SIGABRT SIGIOT /* compatibility */
- #define SIGEMT 7 /* EMT instruction */
- #define SIGFPE 8 /* floating point exception */
- #define SIGKILL 9 /* kill (cannot be caught or ignored) */
- #define SIGBUS 10 /* bus error */
- #define SIGSEGV 11 /* segmentation violation */
- #define SIGSYS 12 /* bad argument to system call */
- #define SIGPIPE 13 /* write on a pipe with no one to read it */
- #define SIGALRM 14 /* alarm clock */
- #define SIGTERM 15 /* software termination signal from kill */
- #define SIGURG 16 /* urgent condition on IO channel */
- #define SIGSTOP 17 /* sendable stop signal not from tty */
- #define SIGTSTP 18 /* stop signal from tty */
- #define SIGCONT 19 /* continue a stopped process */
- #define SIGCHLD 20 /* to parent on child stop or exit */
- #define SIGCLD SIGCHLD /* compatibility */
- #define SIGTTIN 21 /* to readers pgrp upon background tty read */
- #define SIGTTOU 22 /* like TTIN for output if (tp->t_local<OSTOP) */
- #define SIGIO 23 /* input/output possible signal */
- #define SIGXCPU 24 /* exceeded CPU time limit */
- #define SIGXFSZ 25 /* exceeded file size limit */
- #define SIGVTALRM 26 /* virtual time alarm */
- #define SIGPROF 27 /* profiling time alarm */
- #define SIGWINCH 28 /* window size changes */
- #define SIGUSR1 30 /* user defined signal 1 */
- #define SIGUSR2 31 /* user defined signal 2 */
-
- /*
- * Special Sprite signals:
- */
-
- #define SIGDEBUG 3 /* debug (same as quit in Sprite) */
- #define SIGMIG 10 /* migrate process */
- #define SIGMIGHOME 29 /* migrate process back to home node */
-
- #ifndef KERNEL
- /*
- * This is taken more or less from K&R 2nd ed., section B9. Recall
- * that signal() returns the previous handler.
- */
- extern void (*signal _ARGS_((int sig,
- void (*handler)(int sig)))) _ARGS_((int sig));
-
- extern int sigblock _ARGS_ ((int mask));
- extern int sigpause _ARGS_ ((int mask));
- extern int sigsetmask _ARGS_ ((int mask));
- #endif
-
- /*
- * Signal vector "template" used in sigvec call.
- */
- struct sigvec {
- void (*sv_handler)(); /* signal handler */
- int sv_mask; /* signal mask to apply */
- int sv_flags; /* see signal options below */
- };
- #define SV_ONSTACK 0x0001 /* take signal on signal stack */
- #define SV_INTERRUPT 0x0002 /* do not restart system on signal return */
- #define sv_onstack sv_flags /* isn't compatibility wonderful! */
-
- /*
- * Structure used in sigstack call.
- */
- struct sigstack {
- char *ss_sp; /* signal stack pointer */
- int ss_onstack; /* current status */
- };
-
- #if 0
- /*
- * This declaration has been moved to the machine dependent file
- * machSignal.h
- */
-
- /*
- * Information pushed on stack when a signal is delivered.
- * This is used by the kernel to restore state following
- * execution of the signal handler. On some systems it is also made
- * available to the handler to allow it to properly restore state if a
- * non-standard exit is performed. However, user programs should not
- * rely on having access to this information.
- */
- struct sigcontext {
- int sc_onstack; /* sigstack state to restore */
- int sc_mask; /* signal mask to restore */
- int sc_sp; /* sp to restore */
- int sc_fp; /* fp to restore */
- int sc_ap; /* ap to restore */
- int sc_pc; /* pc to restore */
- int sc_ps; /* psl to restore */
- };
- #endif
-
- #define BADSIG (void (*)())-1
- #define SIG_DFL (void (*)())0
- #define SIG_IGN (void (*)())1
-
- #ifdef KERNEL
- #define SIG_CATCH (void (*)())2
- #define SIG_HOLD (void (*)())3
- #endif
-
- /*
- * Macro for converting signal number to a mask suitable for
- * sigblock().
- */
- #define sigmask(m) (1 << ((m)-1))
-
- #endif /* _SIGNAL */
-